Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[setup] Rewrite Ubuntu install_prereqs from the ground up #22055

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jwnimmer-tri
Copy link
Collaborator

@jwnimmer-tri jwnimmer-tri commented Oct 17, 2024

Closes #12175.
Closes #12306.
Closes #13539.


This change is Reviewable

@jwnimmer-tri jwnimmer-tri changed the title [setup] Add --developer flag to install_prereqs [setup] Rewrite Ubuntu install_prereqs from the ground up Nov 4, 2024
@jwnimmer-tri jwnimmer-tri force-pushed the setup-txt-accuracy branch 2 times, most recently from bbf37ee to ef6931b Compare November 4, 2024 17:23
jwnimmer-tri

This comment was marked as resolved.

jwnimmer-tri

This comment was marked as resolved.

The existing from-source setup scripts are deprecated and will be
removed after 2025-07-01:
- setup/ubuntu/install_prereqs.sh
- setup/ubuntu/source_distribution/install_prereqs_user_environment.sh

Instead, users and developers should run setup/install_prereqs (not as
root).

Bug fixes:
- Promote ca-certificates to binary prerequisites. It's required when
  PackageMap downloads https archives (e.g., package://drake_models).

Usability changes:
- Users never run any of our commands under sudo; we'll request sudo if
  and only if we actually need superuser access.
- Fine-tuned log output, with option for --verbose (e.g., in CI).
- Skip unnecessary steps; incremental runs are typically sub-second.

Maintainability changes:
- One single-file program to maintain, instead of an assortment of bash
  scripts and source and exec each other in weird ways.
- Always use files, not heredocs. (The pkg-config etc in a heredoc were
  documented as unwanted when using Drake's Debian packages, but that
  was wrong; we always want those deps even in Debian packages.) All of
  the new entries in our txt files are ported over from heredocs, as is
  the bazelisk metadata.
- Flavors are now a linear stack, not pick-and-choose hodgepodge. This
  substantially reduces our testing / verification burden. Filenames of
  txt files now exactly match the flavor names.
- Smoother control flow which should pave the way to supporting more
  kinds of platforms beyond Ubuntu. Adding more and better kinds of
  error handling or reporting will be easier now (vs bash).

Website changes:
- Major updates to from_source that explain how to install from CMake.
- Rework the Bazel introductory text to be focused on developers only.
Copy link
Collaborator Author

@jwnimmer-tri jwnimmer-tri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 of 8 files at r9, all commit messages.
Reviewable status: 1 unresolved discussion, needs platform reviewer assigned, needs at least two assigned reviewers, missing label for release notes


a discussion (no related file):
Working

Document the new solver flags in bazel.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant